﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

using WindowsFormsApplication4;

namespace ProyectoFinal
{   
    
    public partial class Form2 : Form
    {
        bool flag_carga = false;
        DataSet dsIsotopos;
        string rutaIsotoposSQL = "Data Source=localhost;Initial Catalog=Isotopos;Integrated Security=True";

        public Form2()
        {
            InitializeComponent();
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void txtFechaNacimiento_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar < 48 || e.KeyChar > 59) && e.KeyChar != 8 && e.KeyChar != '/')
                e.Handled = true;
        }

        private void txtTfnoMovil_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar < 48 || e.KeyChar > 59) && e.KeyChar != 8)
                e.Handled = true;
        }

        private void btnBorrarCampos_Click(object sender, EventArgs e)
        {
            txtApellidos.Clear();
            txtNombre.Clear();
            txtFechaNacimiento.Clear();
            txtTfnoMovil.Clear();
            txtProvincia.Clear();
            txtDireccion.Clear();
            txtCiudad.Clear();
            txtCifDni.Clear();
        }
        
        private void btnListadoClientes_Click(object sender, EventArgs e)
        {
            Form21 abrirformulario = new Form21();
            abrirformulario.ShowDialog(); 
        }

        private void AgregarTablaDataSetSQLServer(string ConexionBD, string ConsultaSQL,
                                  string NombreTabla, ref DataSet ds)
        {
            SqlConnection cn = new SqlConnection(ConexionBD);
            SqlDataAdapter adaptador = new SqlDataAdapter(ConsultaSQL, cn);
            cn.Open();
            adaptador.Fill(ds, NombreTabla);
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            llenar_cbApellidosNombre();
            flag_carga = true;
            cbApellidosNombre.SelectedIndex = 1;
            cbApellidosNombre.SelectedIndex = 0;
        }

        private void llenar_cbApellidosNombre()
        {
            string ConsultaSQLApellidosNombre = "Select Cif_Nif_Dni,(Apellidos + \', \' + Nombre) as Name_Full FROM Clientes order by Apellidos";
            dsIsotopos = new DataSet();

            AgregarTablaDataSetSQLServer(rutaIsotoposSQL, ConsultaSQLApellidosNombre, "Clientes",ref dsIsotopos);

            cbApellidosNombre.DataSource = dsIsotopos.Tables[0].DefaultView;
            cbApellidosNombre.ValueMember = "Cif_Nif_Dni";
            cbApellidosNombre.DisplayMember = "Name_Full";
      
       }

        private void cbApellidosNombre_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (!flag_carga) return;
            string ConsultaSQL = "Select * FROM Clientes where Cif_Nif_Dni = '" + cbApellidosNombre.SelectedValue.ToString() + "'";
            //MessageBox.Show(cbApellidosNombre.SelectedValue.ToString());

            //conexion a base de datos
            SqlConnection Isotopos = new SqlConnection(rutaIsotoposSQL);
            Isotopos.Open();// abro conexion.
            string StrComando = ConsultaSQL;
            SqlCommand COMAND = new SqlCommand(StrComando, Isotopos);
            DataTable tabla = new DataTable(); // El resultado lo guardaremos en una tabla
            SqlDataAdapter AdaptadorTabla = new SqlDataAdapter(StrComando, Isotopos); // Usaremos un DataAdapter para leer los datos
            //DataSet ds = new DataSet();
            AdaptadorTabla.Fill(tabla);// Llenamos la tabla con los datos leídos

            string Apellidos = tabla.Rows[0]["Apellidos"].ToString();
            string Nombre = tabla.Rows[0]["Nombre"].ToString();
            string FechaNacimiento = tabla.Rows[0]["FechaNacimiento"].ToString();
            string Direccion = tabla.Rows[0]["Dirección"].ToString();
            string Ciudad = tabla.Rows[0]["Ciudad"].ToString();
            string Provincia = tabla.Rows[0]["Provincia"].ToString();
            string TfnoMovil = tabla.Rows[0]["Teléfono"].ToString();
            string CifDni = tabla.Rows[0]["Cif_Nif_Dni"].ToString();

            txtApellidos.Text = Apellidos;
            txtNombre.Text = Nombre;
            txtFechaNacimiento.Text = FechaNacimiento;
            txtDireccion.Text = Direccion;
            txtCiudad.Text = Ciudad;
            txtProvincia.Text = Provincia;
            txtTfnoMovil.Text = TfnoMovil;
            txtCifDni.Text = CifDni;
        }

        Datos obDatos = new Datos();

        private void btnAñadirCliente_Click(object sender, EventArgs e)
        {
            string sql = "insert into Clientes (Apellidos, Nombre, FechaNacimiento, Dirección, Ciudad, Provincia, Teléfono, Cif_Nif_Dni) values ('"
                   + this.txtApellidos.Text + "','" + this.txtNombre.Text + "','" + this.txtFechaNacimiento.Text + "','" + this.txtDireccion.Text + "','"
                   + this.txtCiudad.Text + "','" + this.txtProvincia.Text + "','" + this.txtTfnoMovil.Text + "','" + this.txtCifDni.Text + "')";

            if (obDatos.Insertar(sql))
            {
                MessageBox.Show("Cliente Añadido");
            }
            else {
                MessageBox.Show("Error al Añadir");
            }
        }

        private void btnSalvarCliente_Click(object sender, EventArgs e)
        {
            string campos = "Apellidos='"+this.txtApellidos.Text+"', Nombre='"+this.txtNombre.Text+"', FechaNacimiento='"+txtFechaNacimiento.Text+
                            "', Dirección='"+this.txtDireccion.Text+"', Ciudad='"+this.txtCiudad.Text+"', Provincia='"+this.txtProvincia+
                            "', Teléfono='"+this.txtTfnoMovil.Text+"', Cif_Nif_Dni='"+this.txtCifDni.Text+"'";
            if (obDatos.Actualizar("Clientes", campos, "Cif_Nif_Dni='" + this.txtCifDni.Text + "'"))
            {
                MessageBox.Show("Cliente Actualizado");
            }
            else {
                MessageBox.Show("Error al Actualizar");
            }
        }

        private void btnEliminarCliente_Click(object sender, EventArgs e)
        {
            if (obDatos.Eliminar("Clientes", "Cif_Nif_Dni='" + this.txtCifDni.Text + "'"))
            {
                MessageBox.Show("Cliente Eliminado");
            }
            else {
                MessageBox.Show("Error al Eliminar");
            }
        }
    }
}
